前言
前面幾天不時有提到,如果可以降低程式碼耦合的程度,可以使程式碼更靈活。
當兩個模組的關聯性越來越高的話,那耦合的程度就越高。
這篇裡面提到使用介面是一種降低程式碼耦合度的有效方式之一,降低耦合度是軟體設計中的重要原則之一,它有助於使程式碼更加靈活、易於維護和擴展。
介面(Interface)是面向物件程式設計中的重要概念之一,用於定義一個類別或結構必須實作的合約。
介面是什麼?
在程式設計中,介面是一種合約或契約,用於定義類別或結構應該提供的方法、屬性和事件。它僅定義了成員的簽名,而不提供任何實際的實作。介面充當了一個標準,告訴類別或結構它們必須提供哪些功能。
介面的特點:
為什麼使用介面?
using System;
// 定義介面
interface IShape
{
double GetArea();
double GetPerimeter();
}
// 實作介面的類別:矩形
class Rectangle : IShape
{
public double Width { get; set; }
public double Height { get; set; }
public Rectangle(double width, double height)
{
Width = width;
Height = height;
}
public double GetArea()
{
return Width * Height;
}
public double GetPerimeter()
{
return 2 * (Width + Height);
}
}
// 實作介面的類別:圓形
class Circle : IShape
{
public double Radius { get; set; }
public Circle(double radius)
{
Radius = radius;
}
public double GetArea()
{
return Math.PI * Radius * Radius;
}
public double GetPerimeter()
{
return 2 * Math.PI * Radius;
}
}
class Program
{
static void Main()
{
// 創建矩形實例
IShape rectangle = new Rectangle(5, 4);
Console.WriteLine("Rectangle Area: " + rectangle.GetArea());
Console.WriteLine("Rectangle Perimeter: " + rectangle.GetPerimeter());
// 創建圓形實例
IShape circle = new Circle(3);
Console.WriteLine("Circle Area: " + circle.GetArea());
Console.WriteLine("Circle Circumference: " + circle.GetPerimeter());
}
}
在這個範例中,先定義了一個名為**IShape
的介面,並要求實作兩個方法:GetArea
和GetPerimeter
,這代表形狀必須提供計算面積和周長的功能。
然後再來創建了兩個不同的實作類別名稱:Rectangle
和Circle
,分別表示矩形和圓形,並且去實作了IShape
**介面。
在**Main
**方法中,我們創建了介面實例,並使用這些介面實例來計算不同形狀的面積和周長。這個範例展示了介面在不同類型之間提供一致的功能契約,並且允許多形狀使用相同的方法名稱來計算其特定的屬性。
第22天 挑戰結束!!!!